package com.sengled.cloud.biz.union.mgt.service.sys;

import com.sengled.cloud.biz.union.mgt.model.po.Role;
import com.sengled.cloud.biz.union.mgt.model.request.GetRoleListRequest;
import com.sengled.cloud.biz.union.mgt.model.request.SaveOrUpdateRoleRequest;
import com.sengled.cloud.biz.union.mgt.model.response.*;
import com.sengled.cloud.biz.union.mgt.model.vo.LoginDataResponse;
import com.sengled.cloud.biz.union.mgt.model.vo.ModulePermissions;
import com.sengled.cloud.biz.union.mgt.model.vo.ModulePermissionsWithChecked;
import com.sengled.cloud.biz.union.mgt.model.vo.RoleWithRoleType;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * Created by csolo on 2017/11/7.
 */
public interface IRoleManageService {
    public ResponseMessage<QueryRoleWithPage> getRoleList(GetRoleListRequest getRoleListRequest,Long accountId);
    public ResponseMessage<List<ModulePermissions>> getModulePermissions();
    public ResponseMessage<RoleEditResponse> getModulePermissionsWithChecked(Long id);
    public ResponseMessage<SaveOrUpdateRoleRequest> saveRoleModulePermissions(SaveOrUpdateRoleRequest saveRoleOrUpdateRequest,Long accountId);
    public ResponseMessage<SaveOrUpdateRoleRequest> updateRoleModulePermissions(SaveOrUpdateRoleRequest saveRoleOrUpdateRequest,Long accountId);
    public ResponseMessage<SaveOrUpdateRoleRequest> saveOrUpdateRoleModulePermissions(SaveOrUpdateRoleRequest saveRoleOrUpdateRequest,Long accountId);
    public ResponseMessage<Long> deleteRole(Long id);
    public ResponseMessage<Long> updateEnableMark(int enableMark,Long id);
    public ResponseMessage<RoleDetail> queryRoleDetail(Long id);
    public ResponseMessage<RoleInsertInfo> queryRoleInsertInfo();
    public ResponseMessage<Long> copyRole(Long id);
    public ResponseMessage<PcLoginDataResponse> getPcLoginData(String username, String channel);
    public ResponseMessage<LoginDataResponse> getAppLoginData(String username, String channel);
}
